package com.lsl.prototype_pattern.example.shallowcopy;

/**
 * description:
 *
 * @author: liushengli
 * data: 2022/12/15
 */
public class Client {

    public static void main(String args[]) {

        WeeklyLog log_previous, log_new;

        log_previous = new WeeklyLog(); //创建原型对象

        Attachment attachment = new Attachment(); //创建附件对象

        log_previous.setAttachment(attachment);  //将附件添加到周报中

        log_new = log_previous.clone(); //调用克隆方法创建克隆对象

        //比较周报
        System.out.println("周报是否相同？ " + (log_previous == log_new));

        //比较附件
        System.out.println("附件是否相同？ " + (log_previous.getAttachment() == log_new.getAttachment()));

        //由于使用的是浅克隆技术，因此工作周报对象复制成功，通过“==”比较原型对象和克隆对象的内存地址时输出false；
        //但是比较附件对象的内存地址时输出true，说明它们在内存中是同一个对象。
    }
}